﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace DiaryPlanner
{
    public partial class FindPW : Form
    {
        string id;

        public FindPW()
        {
            InitializeComponent();
            this.labelq.Visible = false;
            this.textboxQ.Visible = false;
            this.button2.Visible = false;
            this.labelqw.Visible = false;
            this.labelANS.Visible = false;
        }
         
        private void button1_Click(object sender, EventArgs e)
        {
            string compare="";
            id=textBoxID.Text.ToString();
            compare=findqw(textBoxID.Text.ToString());
            if (compare!="")
            {
                this.labelqw.Visible = true;
                this.labelq.Visible = true;
                this.textboxQ.Visible = true;
                this.button2.Visible = true;
                this.labelANS.Visible = true;
                this.textBoxID.Visible = false;
                this.label1.Visible = false;
                this.button1.Visible = false;
                this.labelq.Text = compare;
            }
            else
            {
                MessageBox.Show("아이디가 없습니다");
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            string com="";
            com=findpass(id,textboxQ.Text.ToString());
            if (com != "")
            {
                MessageBox.Show(com);
                this.Close();
            }
            else
            {
                MessageBox.Show("답변이 일치하지 않습니다");
            }
        }
        private string findqw(string id)
        {
            try
            {
                string connectionString = "provider=Microsoft.JET.OLEDB.4.0;" //연결하는 객체의 공급자명(확장자명)
                                         + "data source = "  //데이터 소스=(경로입력하라는거)
                                         + Application.StartupPath ///상대경로 읽어옴
                                         + @"\diaryplannerdb.mdb";//실제 데이터베이스 파일이름

                string commandString = "Select * from [member]";//member테이블에 있는 모든필드들을 모두 검색해라.

                OleDbDataAdapter DBAdapter ////DataSet을 채우고 데이터 소스를 업데이트하는 데 사용되는 데이터 명령 집합 및 데이터베이스 연결하게 하는 함수
                    = new OleDbDataAdapter(commandString, connectionString);//connectionString이라는 경로와 쿼리명령을 동적할당

                OleDbCommandBuilder myCommandBuilder ///연결된 데이터베이스에서 DataSet의 변경 내용을 조정하는 데 사용되는 단일 테이블 명령을 자동으로 생성합니다
                    = new OleDbCommandBuilder(DBAdapter);

                DataSet DS = new DataSet(); //DS라는 데이터 셋 동적할당

                DBAdapter.Fill(DS, "member"); //DS라는 데이터셋에 새로운 member 테이블에 추가 또는 갱신하겠다고 알림.

                DataTable aTable = DS.Tables["member"];//member테이블을 불러와 aTable을 새로 생성해서 저장

                DataColumn[] PrimaryKey = new DataColumn[1];

                PrimaryKey[0] = aTable.Columns["id"]; //a컬럼을 기본키를 설정

                aTable.PrimaryKey = PrimaryKey;//기본키 할당

                DataRow currRow = aTable.Rows.Find(id);
                if (currRow["id"].ToString() == id)
                {
                    return currRow["qw"].ToString();
                }
                else
                {
                    return "";
                }
            }
            catch (DataException)
            {
                
            }
            catch (Exception)
            {
                
            }

            return "";
        }
        private string findpass(string id, string ans)
        {
            try
            {
                string connectionString = "provider=Microsoft.JET.OLEDB.4.0;" //연결하는 객체의 공급자명(확장자명)
                                         + "data source = "  //데이터 소스=(경로입력하라는거)
                                         + Application.StartupPath ///상대경로 읽어옴
                                         + @"\diaryplannerdb.mdb";//실제 데이터베이스 파일이름

                string commandString = "Select * from [member]";//memos테이블에 있는 모든필드들을 모두 검색해라.

                OleDbDataAdapter DBAdapter ////DataSet을 채우고 데이터 소스를 업데이트하는 데 사용되는 데이터 명령 집합 및 데이터베이스 연결하게 하는 함수
                    = new OleDbDataAdapter(commandString, connectionString);//connectionString이라는 경로와 쿼리명령을 동적할당

                OleDbCommandBuilder myCommandBuilder ///연결된 데이터베이스에서 DataSet의 변경 내용을 조정하는 데 사용되는 단일 테이블 명령을 자동으로 생성합니다
                    = new OleDbCommandBuilder(DBAdapter);

                DataSet DS = new DataSet(); //DS라는 데이터 셋 동적할당

                DBAdapter.Fill(DS, "member"); //DS라는 데이터셋에 새로운 memos 테이블에 추가 또는 갱신하겠다고 알림.

                DataTable aTable = DS.Tables["member"];//memos테이블을 불러와 aTable을 새로 생성해서 저장

                DataColumn[] PrimaryKey = new DataColumn[1];

                PrimaryKey[0] = aTable.Columns["id"]; //a컬럼을 기본키를 설정

                aTable.PrimaryKey = PrimaryKey;//기본키 할당

                DataRow currRow = aTable.Rows.Find(id);
                if (currRow["ans"].ToString() == ans)
                {
                    return currRow["pass"].ToString();
                }
                else
                {
                    return "";
                }
            }
            catch (DataException)
            {

            }
            catch (Exception)
            {

            }

            return "";
        }

    }
}
